#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
using namespace std;
#include"priority_queue.h"
template <class T>
class Less
{
public:
    bool operator()(T& x, T& y)
    {
        return x < y;
    }
};
template <class T>
class Greater
{
public:
    bool operator()(T& x, T& y)
    {
        return x > y;
    }
};
int main()
{
	bit::priority_queue<int,vector<int>,Greater<int>> pq;
    pq.push(4);
    pq.push(1);
    pq.push(2);
    pq.push(5);
    pq.push(10);
    pq.push(3);
    while (!pq.empty())
    {
        cout << pq.top() << " ";
        pq.pop();
    }
	return 0;
}